1. Field of the Invention
The present invention relates to the field of software distribution and, more particularly, to configurable and to a micro installation process for software packaging and distribution.
2. Description of the Related Art
There are many incarnations of self-extracting executable installer creation programs which allow software makers to create customized installable executables. However, these executables are statically created, lack flexibility, and require complicated scripts. Changes to the installer require the creators to reconstruct the installer, which can be a time consuming process. When multiple variants of the installer are necessary, it is not uncommon that a single monolithic installer, with all the software necessary for each configuration, is used. Installer generated installation files can be relatively large files that consume significant bandwidth when conveyed over a network and that consume significant computing resources when executed. Difficult to edit scripts are needed to manage the installation process. This results in installers with large file sizes that have excessive software components, which negatively affect performance and distribution.
When packaging software components for customized distribution and installation, it is often useful and necessary for users to make changes to suit special needs. For example, value added resellers may desire to brand an installation and to add additional components other than those that are part of a distributed product. In another example, a corporate information technology (IT) administrator may desire to make installation changes to tailor an installation to the company's needs, instead of being forced to make repetitive post-installation changes each time a product is installed. A lack of ability to tailor current installation routines has resulting in many IT departments creating software images of a model computer environment, then installing this image on similar computers. This practice saves time, but effectively circumvents a typical installation process of individual software packages. Negatives resulting from this circumvention include having improper licensing information for software on imaged machines, having imperfect matches between machine specific hardware and drivers, and reducing flexibility among various organization users by requiring use of a standard software configuration. Additionally, lack of ability to tailor current installation results in packaging everything and as a result produces a large network payload for distribution. For example, an eight megabytes software product could be distributed within as a seventy-five megabytes installation file.
Current installer programs generally result in a fixed deployable executable, which users, resellers, and distributors cannot easily modify in a desired manner. Additionally, many software producers utilize in-house tools and/or third party software to create installable software packages. To perform modifications, the users are forced to own the same installer tools, which is often infeasible and monetarily prohibitive. This is assuming that the users wanting to modify the installable software packages even have access to package source artifacts that modifications can be made against. Additionally, many of the installer tools are platform specific, which results in problems deploying software across multiple platforms. It would be advantageous if a flexible and adaptable solution for a self-extracting executable installer were devised.